package com.ysstech.etfmanage.service;

import java.util.List;

import com.ysstech.etfmanage.enums.EtfAccountCode;
import com.ysstech.etfmanage.entity.Account;
import com.ysstech.etfmanage.entity.ParamVo;


public interface AbsEtfAccountGenerate<T> {

    /**
     * ETF 类型
     *
     * @return
     */
    public EtfAccountCode getFtype();

    /**
     * 成份券市场
     *
     * @return
     */
    public List<String> getMarketList();

    /**
     * 处理初始化数据
     *
     * @throws Exception
     */
    public List<T> initEtfAccount(Account vo, ParamVo paramVo) throws Exception;

    /**
     * 处理权益数据
     *
     * @throws Exception
     */
    public List<T> renewRightEtfAccount(Account vo, ParamVo paramVo) throws Exception;

    /**
     * 处理补票数据
     *
     * @throws Exception
     */
    public List<T> renewFillEtfAccount(Account vo, ParamVo paramVo) throws Exception;

}
